<div class="box-page-container">
  <div class="box-page-header">
    <div class="title">Создание новости</div>
    <div class="other-controls right">
    </div>
  </div>
  <div class="box-page-body">
    <div class="box-message" id="message" style="display: none"></div>
    <div class="form">
        <dt id="title-label"><label for="title" class="required">Заголовок:</label></dt>
        <dd id="title-element"><input type="text" name="title" id="title" value=""><p class="description"></p></dd>
        <dd id="text-element"><textarea name="text" id="text"></textarea></dd>
        <h3>Прикрепленные файлы:</h3>
        <ul id="attachment-list" style="display: none"></ul>
        <dd><input name="fileToUpload[]" id="file_upload" class="MultiFile" type="file"/></dd>
    </div>
	<div class="caption">Группы:</div>
	<div class="info">
		<p>Укажите группы для которых будет видна данная новость.
		Если группы не указаны, то, новость будет видна для всех.</p>
	</div>
    <table class="table" id="group-list">
      <thead>
        <tr>
          <th width="120px">Заголовок</th>
          <th>Описание</th>
          <th width="30px"></th>
        </tr>
      </thead>
      <tbody>
        <?php foreach ($this->groups as $group): ?>
		  <?php if ($group->id != 1 && $group->id != 2 && $group->id != 4): ?>
          <tr id="<?php echo $group->id ?>">
            <td><?php echo $group->title ?></td>
            <td><?php echo $group->description ?></td>
            <td><input type="checkbox" /></td>
          </tr>
		  <?php endif; ?>
        <?php endforeach; ?>
      </tbody>
    </table>
  </div>
  <div class="box-page-footer">
    <div class="box-controls">
      <div class="right">
       	<div class="btn"><button onclick="create(this); return false;" class="primary">Создать</button></div>
      </div>
      <div id="progress_ajax" class="progress ajax-preloader-base"></div>
      <div id="control_text" class="box-controls-text"></div>
      <div class="clear-fix"></div>
    </div>
  </div>
  <div class="clear-fix"></div>
</div>
<link rel="stylesheet" href="/css/jquery.cleditor.css" />
<link rel="stylesheet" type="text/css" href="/css/mediaelementplayer.css">
<link rel="stylesheet" type="text/css" href="/css/mejs-skins.css">
<style>
@import url(/css/uploadify.css);
.form input {
  width: 280px;
}
</style>
<script src="/js/jquery/jquery.cleditor.min.js"></script>
<script src="/js/jquery/cleditor/plugins.audio.js"></script>
<script src="/js/jquery/cleditor/plugins.video.js"></script>
<script src="/js/jquery/cleditor/plugins.page_break.js"></script>
<script src="/js/jquery/jquery.uploadify.js"></script>
<script>
$("#text").cleditor({width:'', height:300, useCSS:true, imagePath: '/images/'});
$('#file_upload').uploadify({
	'formData': {'sid': '<?php echo $this->client->sid ?>'},
	'debug'	   : false,
	'buttonText': 'Выбрать файлы...',
	'removeCompleted': true,
	'fileSizeLimit' : '50MB',
	'fileTypeExts' : '*.gif; *.jpg; *.png; *.jpeg; *.mp3; *.avi; *.mp4; *.3gp; *.mpeg; *.txt; *.doc; *.docx; *.xls; *.xlsx; *.ppt; *.pptx; *.rtf; *.pdf; *.rar; *.psd',
    'swf'      : '/js/jquery/uploadify/uploadify.swf',
    'uploader' : '/cp/attachments/upload.attachment',
    'onUploadSuccess' : function(file, data, response) {
        var r = $.parseJSON(data);
        if (typeof r.error == 'string') {
            alert(r.error);
            return false;
        }
        addAttachs(r);
    },
    'onUploadError' : function(file, errorCode, errorMsg, errorString) {
        console.log(file, errorCode, errorMsg, errorString);
        alert('The file ' + file.name + ' could not be uploaded: ' + errorString);
    }
});
$('.form #title').keyup(function(){
	var val = $(this).val();
	var message = '';
	if (!val) {
		message = '<span style="color: red;">Пожалуйста, укажите заголовок новости!</span>';
	}
	var regexp = /^[a-zа-я0-9_\s\:\;\"\'\,\?\!\(\)\+\*\=\-\.]*$/i;
	if (!regexp.test(val)) {
		message = '<span style="color: red;">Не верный формат заголовка новости!<p>Только английский, русский алфавиты, пробел, цифры и знаки "-", "_", ".", ":", ";", ",", "?", "!", "(", ")", "+", "*", "=".</p></span>';
	}
	$('#title-element .description').html(message);
});

$('#file_upload-button').css({
    'height': '20px',
    'line-height': '20px',
    'width': '90px'
});
function addAttachs(data) {
    html = '<li id="'+data.id+'">';
    if (data.type == 'image') {
        html+= '<img src="/images/file-types/image.png" width="16"/ >';
    } else if (data.type == 'doc') {
    	html+= '<img src="/images/file-types/document.png" width="16"/ >';
    } else if (data.type == 'audio') {
    	html+= '<img src="/images/file-types/audio.png" width="16"/ >';
    } else if (data.type == 'video') {
    	html+= '<img src="/images/file-types/video.png" width="16"/ >';
    } else if (data.type == 'other') {
    	html+= '<img src="/images/file-types/other.png" width="16"/ >';
    }
    html+= '<span>' + data.url + '</span>';
    html+= '<span style="float: right;"><a href="' + data.url + '" target="_blank">Открыть</a> <a href="#" onclick="deleteAttach(this, '+data.id+'); return false;">Удалить</a><div id="progress" style="display: none;" class="progress ajax-preloader-base"></div></span>';
    html+= '</li>';
    $('#attachment-list').show().append(html);
}
function deleteAttach(el, id) {
	$(el).parent().find('a').hide().parent().find('#progress').show();
	$.getJSON('/cp/attachments/delete.attach', {'id': id}, function(response){
		if (typeof response.status == 'string' && response.status == 'ok') {
			$(el).parent().parent().remove();
		}
	});
}
function create(el) {
    var msgBox = goog.dom.$('message');
    var title = $('.form #title').val();
	var groups = $('input[type="checkbox"]:checked', '#group-list');
    var text = $('.form #text').val();
    if (!title) {
    	$('.form #title').focus();
    }
    if (!title || !text) {
    	msgBox.innerHTML = '<p>Все поля обязательны для заполнения.</p>';
		fx = new goog.fx.dom.FadeInAndShow(msgBox, 200);
		fx.play();
		return false;
    }
	if (msgBox.innerHTML != '') {
		fx = new goog.fx.dom.FadeOutAndHide(msgBox, 200);
		fx.play();
		msgBox.innerHTML = '';
	}
	var groupId = [];
	groups.each(function(){
		groupId.push($(this).parent().parent().attr('id'));
	});
	var attachmentsElements = $('#attachment-list>li');
	var attachments = [];
	if (attachmentsElements.length > 0) {
    	attachmentsElements.each(function(){
        	attachments.push($(this).attr('id'));
        });
	}
	$('#progress_ajax').show();
	$('#control_text').hide();
	$(el).hide();
	$.ajax({
		"url": "/cp/news/create.save",
		"type": "POST",
		"dataType": "json",
	    "data": {
        	'title': title,
        	'text': text,
        	'groups': groupId,
			'attachments': attachments
        },
		"success": function(response) {
			$('#progress_ajax').hide();
			$(el).hide();
			$('.box-page-body').html('Новость <b>' + title + '</b> создана. <a href="/cp/news">Перейти к списку новостей</a>, <a href="/cp/news/create">Создать еще новость</a>');
		},
		"error": function(response) {
			$('#progress_ajax').hide();
			$(el).show();
			$('#control_text').html('Во время обработки запроса, возникли ошибки.').show();
			setTimeout(function(){
				$('#control_text').hide()
			}, 4000);
		}
	});
}
</script>
